"use strict";
// 1.string
// 2.number
let num2 = 10;
// 3.boolean
// 4.字面量
// 5.any 任意类型 设置了any就相当于是关闭了ts的类型检测 可以是任何的类型 就像是js代码一样
let num = 10;
num = "hello";
num = true;
// 6.unknow 未知类型 相当于是类型安全的any 也能赋值任何类型 还是一种数据类型 不能影响别人 跟any的区别是
// any可以影响别人 ts管不住any 超脱类型之外了
let myUn = "1111";
myUn = 12;
let myStr = "aaaa";
// myStr = num
// myStr=myUn
console.log(myStr);
// 7.void一般用作函数的返回值 当函数没有返回值的时候就用void表示
function fun1(a) {
    console.log(111);
}
//8.never 在抛出错误的时候 使用
function fun2() {
    throw new Error("抛出错误");
}
//9.数组
// 第一种方法  定义数组名称：类型[]=
let arr = [1, 2];
//数组类型是number类型
let arr2 = [1, 2, "111"];
//定义数组类型 里面只能放number和string
let arr3 = [1, 2, 3, "aaa"];
//数组类型是任意类型
arr3 = [true, 1, 3];
// 第二种 用范型定义 后期会讲
let arr4 = [1, 2, 3, "111"];
// 第三种 接口
// 后期会讲到
// 10.元祖// tuple
// 规定数组的长度并且规定每一项的类型
let myTu = ["11", 11];
//11.枚举 enum
// enum 就是把这个数据可能出现的情况都列举出来
var mySex;
(function (mySex) {
    mySex[mySex["nan"] = 1] = "nan";
    mySex[mySex["nv"] = 2] = "nv";
    mySex[mySex["pl"] = 3] = "pl";
})(mySex || (mySex = {}));
var myPush;
(function (myPush) {
    myPush[myPush["keixng"] = 0] = "keixng";
    myPush[myPush["anhuizhengwu"] = 1] = "anhuizhengwu";
    myPush[myPush["guoyao"] = 2] = "guoyao";
})(myPush || (myPush = {}));
console.log(mySex);
let obj = {
    name: "小明",
    age: 18,
    sex: mySex.nan,
    isPush: myPush.keixng
};
console.log(obj);
// 数据类型一共有12种
// string 
// number
// boolean
// any
// unknow
// void
// never
// enum
// tuple
// object
// array
// 字面量
